package leetcode101.string_problem;

/**
 * @author Synhard
 * @version 1.0
 * @class Code3
 * @description 647. 回文子串
 * 给定一个字符串，你的任务是计算这个字符串中有多少个回文子串。
 * <p>
 * 具有不同开始位置或结束位置的子串，即使是由相同的字符组成，也会被视作不同的子串。
 * <p>
 * <p>
 * 示例 1：
 * <p>
 * 输入："abc"
 * 输出：3
 * 解释：三个回文子串: "a", "b", "c"
 * 示例 2：
 * <p>
 * 输入："aaa"
 * 输出：6
 * 解释：6个回文子串: "a", "a", "a", "aa", "aa", "aaa"
 * @tel 13001321080
 * @email 823436512@qq.com
 * @date 2021-05-21 9:39
 */
public class Code3 {

    public static void main(String[] args) {
        System.out.println(countSubstrings("abc"));
    }

    public static int countSubstrings(String s) {
        int counter = 0;
        //转字符数组
        char[] chars = s.toCharArray();
        //求子串
        for (int i = 0; i < chars.length; i++) {
            for (int j = i + 1; j < chars.length + 1; j++) {
                if (check(s.substring(i, j))) {
                    counter++;
                }
            }
        }
        return counter;
    }

    private static boolean check(String s) {
        for (int i = 0; i < s.length() >> 1; i++) {
            if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {
                return false;
            }
        }
        return true;
    }

    private Runnable runnable = new Runnable(){
        @Override
        public void run(){
            System.out.println("inner run: " + 1);
        }
    };


}
